package com.example.myapplication;

import android.content.DialogInterface;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

public class StudentQuery_Activity extends AppCompatActivity {
    //定义内部对象
    ListView listView;
    StudentDBHelper dbHelper;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_student_query);
//设置标题栏
        this.setTitle("浏览学生列表信息");
//初始化组件
        listView = (ListView) findViewById(R.id.studentListview);
//创建数据库对象
        dbHelper = new StudentDBHelper(this);
//用自定义函数执行查询数据并显示结果（全体学生清单）
        use_cursor();
//提示对话框，在下面的事件监听器中要调用
        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
//设置 ListView 单击监听器
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
//取得 id
                final long temp = id;
//设置对话框
                builder.setMessage("真的要删除该记录吗？")
                        .setPositiveButton("是", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int which) {
//删除数据
                                dbHelper.del((int) temp);
//再次查询并显示学生信息
                                use_cursor();
                            }
                        })
                        .setNegativeButton("否", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int which) {
                            }
                        })
                        .create()
                        .show();
            }
        });
//关闭数据库
        dbHelper.close();
    }
    private void use_cursor() {
//查询数据，获取游标
        Cursor cursor = dbHelper.query();
        Log.d("提示", "有结果");
//列表项数据
        String[] from = {"_id", "num", "name"};
//列表项 ID
        int[] to = {R.id.student_id, R.id.student_num, R.id.student_name};
//适配器
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(getApplicationContext(),
                R.layout.studentrow, cursor, from, to);
/* 关于 SimpleAdapter 类：简单适配器，看似简单，功能却异常强大
网址：https://developer.android.google.cn/reference/android/widget/SimpleAdapter
要构造一个 SimpleAdapter，需要以下的参数（构造方法的参数）:
第一个参数：Context context，上下文对象，指明了 SimpleAdapter 关联的 View 的运行环境
常取当前的 Activity
第二个参数：List<? extends Map<String, ?>> data，数据源，是一个由 Map 组成的 List,
在该 List 中的每个条目对应 ListView 的一行，对应所有在 from 参数中指定的 key。
第三个参数：int resource，定义列表项的布局文件的资源 ID，
该资源文件至少应该包含在 to 参数中定义的 ID。
第四个参数：String[] from，数组的里面的每一项，
与第二个参数中的存入 map 集合的的 key 值一一对应
第五个参数：int[] to:将绑定数据的视图的 ID 跟 from 参数对应，
数组里面的第三个参数(布局文件)中的 item 里面的控件 id。
*/
//为列表视图添加适配器
        listView.setAdapter(adapter);
    }
}